﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Fwk.Presentacion;
using Servidor.Documentos;
using Servidor.Servicios;

namespace Presentacion.Web.Seguridad
{
    public partial class FrmGrupo : PaginaABM
    {
        //Objeto de Servicios para acceder a los datos de Grupo
        SvcGrupo svcGrupo = new SvcGrupo();

        protected void Page_Load(object sender, EventArgs e)
        {

            if (!Page.IsPostBack)
            {
                CargarGrilla();
            }
        }


        public void CargarGrilla() 
        {
            //Acceder al Servicio para cargar los grupos
            DocGrupo docGrupo = svcGrupo.LeerGrupoNombreCodigo(txtNombreGrupoBus.Text,txtCodigoBus.Text);
            //Asigno el documento con la tabla
            Grilla.DataSource = docGrupo.Grupo;
            //Dibujar Grilla
            Grilla.DataBind();
  
        }
        protected void btnNuevo_Click(object sender, EventArgs e)
        {

            AccionABM = Accion.Nuevo;
            updGrupo.Update();
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            AccionABM = Accion.Modificar;

            Guid ID_Grupo = (Guid)Grilla.SelectedDataKey.Value;
            DocGrupo docGrupo = svcGrupo.LeerGrupo(ID_Grupo);
            DocGrupo.GrupoRow grupoRow;

            grupoRow = docGrupo.Grupo[0];
            txtNombre.Text = grupoRow.Nombre;
            txtCodigo.Text = grupoRow.Codigo;
            chkActivo.Checked = grupoRow.EstaActivo;
            updGrupo.Update();
        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {
            Guid ID_Grupo = (Guid)Grilla.SelectedDataKey.Value;
            DocGrupo docGrupo = svcGrupo.LeerGrupo(ID_Grupo);
            docGrupo.Grupo[0].Delete();

            svcGrupo.Guardar(docGrupo);
            
            CargarGrilla();
            
            updGrupo.Update();
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            DocGrupo docGrupo = new DocGrupo();
            DocGrupo.GrupoRow grupoRow;

            if (AccionABM.Equals(Accion.Nuevo))
            {

                grupoRow = docGrupo.Grupo.NewGrupoRow();
                grupoRow.ID_Grupo = Guid.NewGuid();
                grupoRow.Nombre = txtNombre.Text;
                grupoRow.Codigo = txtCodigo.Text;
                grupoRow.EstaActivo = chkActivo.Checked;
                docGrupo.Grupo.AddGrupoRow(grupoRow);

            }
            else 
            {

                Guid ID_Grupo = (Guid)Grilla.SelectedDataKey.Value;
                docGrupo = svcGrupo.LeerGrupo(ID_Grupo);
                grupoRow = docGrupo.Grupo[0];
                grupoRow.Nombre = txtNombre.Text;
                grupoRow.Codigo = txtCodigo.Text;
                grupoRow.EstaActivo = chkActivo.Checked;

            }

            svcGrupo.Guardar(docGrupo);
            
            CargarGrilla();
            AccionABM = Accion.Ninguno;

            updGrupo.Update();
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            AccionABM = Accion.Ninguno;
            updGrupo.Update();

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            CargarGrilla();
            updGrupo.Update();
        }

        protected void btnLimpiar_Click(object sender, EventArgs e)
        {

            txtCodigoBus.Text = " ";
            txtNombreGrupoBus.Text = " ";
            updGrupo.Update();    
           
            
            //AGREGAR QUE LIMPIE LA GRILLA
        }
    }
}
